package 二叉树相关问题.中度题;

public class 二叉树剪枝 {

    public TreeNode pruneTree(TreeNode root) {
          if (traverse(root))
              return null;
          if (traverse(root.left))
              root.left=null;
          if (traverse(root.right))
              root.right=null;
          pruneTree(root.left);
          pruneTree(root.right);
          return root;
    }
    //判断当前节点是否需要剪枝
    public boolean traverse(TreeNode root){
        if (root==null)
            return true;
        if (root.val==0)
            return traverse(root.left) && traverse(root.right);
        return false;
    }
}
